# -*- coding: UTF-8 -*-
"""
    @Author:YTQ
    @Time: 2022/7/22 10:26
    Description：图片尺寸统一化（有助于优化模型精度）
"""

from PIL import Image
import os


# 中心裁剪center crop：先比较长边和短边，以短边为边长从图片中心裁剪出一个正方形
def center_crop_obj_arr(im):
    iw, ih = im.size
    if iw > ih:
        left = iw // 2 - ih // 2
        right = iw // 2 + ih // 2
        top = 0
        bottom = ih
    else:
        left = 0
        right = iw
        top = ih // 2 - iw // 2
        bottom = ih // 2 + iw // 2
    im = im.crop((left, top, right, bottom))
    return im


# 使用 中心剪裁 => 图片大小重设置
def resize_img(basePath, newPath, act, imgType):
    images = os.listdir(basePath)
    count = 0
    for img in images:
        path = basePath + os.sep + img
        newImg = center_crop_obj_arr(Image.open(path))
        # 保存并重命名
        newImg.save(f'{newPath}{os.sep}{act}{count}.{imgType}')
        print(f'=====> {count}')
        count += 1

# 更多图片尺寸统一设置：https://www.zhihu.com/question/360010590 （仅供参考）
